package com.baidu.unlockdemo.lifecyle

import android.app.Application
import android.view.View
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData

/**
 * ViewModel
 *  class MainViewModel: ViewModel() {}
 * AndroidViewModel ：必须传一个context
 *  class MainViewModel(application: Application): AndroidViewModel(application){}
 */

/**
 * 暴露给外部使用LiveData类型
 * 内部使用MutableLiveData类型
 */
class MainViewModel(application: Application): AndroidViewModel(application) {
    //创建一个可变的LiveData 初始值为0
    private val _number: MutableLiveData<Int> = MutableLiveData(0)
    var number: LiveData<Int> = _number

    // 创建音乐播放器
    val mediaPlayer = MusicPlayer(application)

    fun addOne(){
        //获取LiveData里面封装的数据
        val temp = _number.value !!

        //更新数据
        _number.postValue(temp+1)
    }

    /**
     * 在MainViewModel中不要这么写
     */
    fun addTwo(view: View){
        //获取LiveData里面封装的数据
        val temp = _number.value !!

        //更新数据
        _number.postValue(temp+2)
    }
}